#include<iostream>
using namespace std;
int n;
int m;
int l;
int fav[201];
int stripe[10001];
int dp[201][10001];
int main(){
    cin>>n>>m;
    int i=0;
    while(i<m){
        cin>>fav[++i];
    }
    cin>>l;
    i=0;
    while(i<l){
        cin>>stripe[++i];
    }
    for(i=1;i<=m;i++){
        for(int j=1;j<=l;j++){
            int maxi=dp[i-1][j-1];
            if(maxi<dp[i][j-1]) maxi=dp[i][j-1];
            if(maxi<dp[i-1][j]) maxi=dp[i-1][j];
            if(fav[i]==stripe[j]) dp[i][j]=maxi+1;
            else dp[i][j]=maxi;
        }
    }
    /*for(i=0;i<=m;i++){
        for(int j=0;j<=l;j++){
            cout<<dp[i][j]<<" ";
        }
        cout<<endl;
    }*/
    cout<<dp[m][l];
    return 0;
}
